﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Data;

namespace FormFiller
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new ProjectInfoMain());
        }
    }

    //Направление проекта
    public enum InnovationProjectDirection
    {
        BIO, IT, MIF, CHIM, MASH, ANOTHER
    }

    //Время реализации
    public enum ProjectImplementationPeriod
    {
        M1, _12, _25, _57, _510, B10, ANOTHER
    }

    //Вариант реализации
    public enum ProjectRealization
    {
        CREATENEW, ONEXISTING, NEWTECH, ANOTHER
    }

    //Необходимая поддержка
    public enum ProjectSupport
    {
        SCIENCE, BUSYNESSPLAN, FINANCE, NOTNEEDED, AREA, ORGANIZATIONS, PERSONAL, ANOTHER
    }

    //данные о члене команды
    [Serializable]
    public class MemberInfo
    {
        //ФИО
        public string fio { get; set; }
        //Дата рождения
        public DateTime birthDay { get; set; }
        //Квалификация
        public string qualification { get; set; }
        //Паспортные данные
        public string passportData { get; set; }
        //Контактный номер
        public string phone { get; set; }
        //Почта
        public string email { get; set; }

        public MemberInfo()
        {
            fio = "Введите ФИО";
            birthDay = new DateTime(1970, 1, 1);
            qualification = "профиль образования, научная степень, доп. образование";
            passportData = "серия, номер,  когда и кем выдан";
            phone = "(код региона) номер";
        }

        public MemberInfo(MemberInfo other)
        {
            fio = other.fio;
            birthDay = other.birthDay;
            qualification = other.qualification;
            passportData = other.passportData;
            phone = other.phone;
        }

        public override string ToString()
        {
            return fio;
        }
    }

    [Serializable]
    public class ProjectInfoData
    {
        //!!!--- Общие данные
        //название заявки
        public string applicationName;
        //дата заполнения
        public DateTime applicationDate;
        
        //!!!--- Пункт 1
        //Полное имя проекта
        public string p1FullName;
        //Краткое имя проекта
        public string p1ShortName;

        //!!!--- Пункт 2
        //Направление проекта
        public InnovationProjectDirection p2ProjectDirection;
        //Текст для Another
        public string p2AnotherDirection;
        
        //!!!--- Пункт 3
        //Срок реализации проекта
        public ProjectImplementationPeriod p3ProjectImplPeriod;
        //Текст для Another
        public string p3AnotherPeriod;


        //!!!--- Пункт 4
        //Название продукта
        public string p4ProductName;
        //Описание продукта
        public string p4ProjectDescription;
        //Техническое описание
        public string p4TechDescription;
        //Реализация
        public ProjectRealization p4Realization;
        //Текст для Another
        public string p4AnotherRealization;
        //Научно-технические задел
        public string p4Science;

        //!!!--- Пункт 5
        //Потребители продукта
        public string p5Consumers;
        //Наименование продукта
        public string p5ProductName;
        //Аналоги
        public List<string> p5Analogs;
        //Показатели
        public List<string> p5Teps;

        //!!!--- Пункт 6
        //Полная стоимость
        public string p6FullCost;
        //Собственные средства
        public string p6OwnFunds;
        public string p6OwnConditions;
        //Средства инвесторов
        public string p6InvestorFunds;
        public string p6InvestorConditions;
        //Работы
        public List<string[]> p6Jobs;

        //!!!--- Пункт 7
        //Время превращения идеи в продукт
        public string p7Time;

        //!!!--- Пункт 8
        //Правовая охрана
        public string p8Law;

        //!!!--- Пункт 9
        //Экспертиза
        public string p9Examination;

        //!!!--- Пункт 10
        //Необходимая поддержка
        public ProjectSupport p10Support;
        //Текст для Another
        public string p10AnotherSupport;

        //!!!--- Пункт 11
        //Площадь
        public string p11Square;
        //Характеристика помещения
        public string p11Charact;
        //Количество рабочих
        public string p11PersonalCount;
        //Срок размещения
        public string p11Period;
        //Прочее
        public string p11Other;

        //!!!--- Анкета-Приложение
        //Руководитель
        public MemberInfo anketaHead;
        //Команда
        public List<MemberInfo> anketaCommand;
        //Список организаций-сопровожденцев
        public List<string> anketaOrganizations;
        //Адрес
        public string anketaAddress;
        //Телефон
        public string anketaPhone;
        //Почта
        public string anketaEmail;
    }
}
